home *** CD-ROM | disk | FTP | other *** search
/ Megaware 1 / Megaware Volume 1.iso / utils / burnout2 / burnout.doc < prev    next >
Encoding:
Text File  |  1989-04-14  |  31.8 KB  |  702 lines

  1.  
  2.                                    BURNOUT II
  3.                                V2.31 13-Apr-1989
  4.  
  5.         Function
  6.         --------
  7.         BURNOUT II is an enhanced version of the old screen blanking
  8.         program of the same name; its primary purpose is to blank out
  9.         your video display after a specified length of time.  BURNOUT II
  10.         is significantly enhanced over BURNOUT; not only does it allow
  11.         you better control over its operations, but it is written as a
  12.         virtual device driver so that you can control it directly from
  13.         your own programs.
  14.  
  15.  
  16.         V2.31 notes
  17.         -----------
  18.         This version just corrects a small bug that prevented BURNDEV
  19.         from loading correctly into "high" memory (above the video
  20.         adapter memory area) via programs such as 386MAX from Qualitas,
  21.         Inc.  There is no change in function.
  22.  
  23.  
  24.         V2.30 notes
  25.         -----------
  26.         In hardware blanking mode (H+) this version will blank EGA and
  27.         VGA adapters, and it will turn off the CGA text mode border.
  28.         EGA owners should now use H+, because it will blank the screen
  29.         in any video mode (including 43-line mode) and it won't affect
  30.         communications, as H- mode does.
  31.  
  32.         If you select H+ mode via CONFIG.SYS (i.e., at boot time),
  33.         BURNOUT 2.30 will use about 2K less memory than 2.20 did.
  34.         You will not be able to use H- mode after booting, however.
  35.  
  36.  
  37.         V2.20 Notes
  38.         -----------
  39.         This version will blank CGA-compatible adapters in graphics
  40.         modes.
  41.  
  42.         The R parameter has been added.  This is of interest primarily
  43.         to programmers.
  44.  
  45.  
  46.         V2.10 Notes
  47.         -----------
  48.         This version adds "on demand" screen blanking.  By pressing the
  49.         left shift key and <Ctrl> simultaneously, you can force the
  50.         screen to blank.  The key combination can be altered via the new
  51.         F parameter.
  52.  
  53.  
  54.         Installation
  55.         ------------
  56.         To install BURNOUT, follow two steps: place the file BURNDEV.SYS
  57.         in the root directory of your boot diskette or hard disk, and
  58.         modify the CONFIG.SYS file to include the statement
  59.         "device=burndev.sys".
  60.  
  61.             NOTE:  when installing a new device driver on a fixed
  62.             disk system, it is always advisable to test the driver
  63.             via a bootable diskette before making a change to the
  64.             fixed disk's CONFIG.SYS.
  65.  
  66.         In case you are not familiar with CONFIG.SYS: this is a small
  67.         text file that DOS reads when booting.  It contains various
  68.         pieces of information that DOS and other programs can use when
  69.         setting themselves up.  Look in the root directory of your boot
  70.         disk for the file CONFIG.SYS.  If no such file exists, just
  71.         type:
  72.  
  73.                 copy con \config.sys<Enter>
  74.                 device=burndev.sys<Enter>
  75.  
  76.         Then press F6 (you'll see "^Z") and <Enter>, and you're done.
  77.  
  78.         If you already have a CONFIG.SYS file (which is likely), you
  79.         must edit it to include the statement "device=burndev.sys".  Do
  80.         this using your text editor or word processor in text mode (or
  81.         Edlin).  Retain all existing information, and add the new line.
  82.  
  83.         Now reboot your machine.  If all goes well, it will boot as
  84.         usual.  There will be no indication that anything has happened.
  85.         However, the screen should clear after about ten minutes of
  86.         inactivity.  You can clear the screen instantly by pressing the
  87.         left shift key and <Ctrl> simultaneously.  After the screen has
  88.         cleared, any keystroke and most video activity will restore it.
  89.  
  90.         BURNDEV uses about 2400 bytes of memory if installed in H+ mode,
  91.         4400 bytes if installed in H- mode (see below).
  92.  
  93.  
  94.         BURNOUT parameters
  95.         ------------------
  96.         There are several ways in which you can alter the operation of
  97.         the BURNOUT system.  There is a demo program called BURNOUT.COM
  98.         that you can use for this purpose.  Its syntax is as follows:
  99.  
  100.                 BURNOUT [count] [V±] [H±] [C±] [Fn] [R]
  101.  
  102.         The parameters are as follows:
  103.  
  104.         COUNT: changes the number of clock ticks until the screen
  105.         blanks (this is called the "reset count").  For example,
  106.  
  107.                 BURNOUT 5000
  108.  
  109.         sets the reset count to 5000.  This means that if BURNOUT
  110.         observes no keyboard or video activity within 5000 clock ticks,
  111.         it will blank the screen.  On IBM and compatible systems, there
  112.         are about 18.2 ticks per second, so the screen will clear after
  113.         about 5000/18.2 seconds (275 seconds, or about four and a half
  114.         minutes).  (The default value on powerup is 10800 ticks, or
  115.         about 10 minutes).  You can set the reset count anywhere from 1
  116.         tick (not highly recommended) to 65535 ticks (about an hour).
  117.  
  118.         If you set the reset count to 0, BURNOUT will be effectively
  119.         disabled until you set a new nonzero count.  This is useful for
  120.         programs that don't get along with the screen blanker.
  121.  
  122.         V: This stands for Video, and tells BURNOUT whether you want it
  123.         to monitor video activity in addition to keyboard activity.
  124.         You can set either "V+" (monitor video), or "V-" (don't).  Thus,
  125.  
  126.                 BURNOUT 5000 V-
  127.  
  128.         sets the reset count to 5000 ticks, and not to monitor video.
  129.         Why would you not want to monitor video?  Primarily because some
  130.         programs continuously update the display (e.g., with a ticking
  131.         clock) even when they're not doing anything.  If you use V+, the
  132.         screen would never blank.  The default setting is V+.
  133.  
  134.         H: This stands for Hardware, and tells BURNOUT whether you want
  135.         it to blank the screen by manipulating the hardware (i.e., by
  136.         turning off the video signal), or by software (which it does by
  137.         temporarily changing screen attributes to black-on-black, or
  138.         nondisplay).  Some explanation is in order.
  139.  
  140.         The preferred method of blanking the screen is to do it by
  141.         manipulating the PC's video controller.  This method is very
  142.         fast and in general has fewer problems than the software method.
  143.         However, it does have two problems.  First, it is nonportable:
  144.         it doesn't work with all PC-compatibles or with all possible
  145.         video adapters.  Second, there have been reports that this
  146.         method (which is used by most screen blanking programs) can
  147.         PHYSICALLY DAMAGE a few non-IBM video adapters, notably the
  148.         Hercules and similar cards.
  149.  
  150.             DO NOT USE H+ IF YOU ARE USING A HERCULES OR
  151.             SIMILAR VIDEO ADAPTERS!!!  YOU HAVE BEEN WARNED!!!
  152.  
  153.         If you ARE using a standard IBM video adapter or the equivalent,
  154.         try H+, with a setting of about 10 seconds, to make sure it
  155.         works:
  156.  
  157.                 BURNOUT 180 H+
  158.  
  159.         The screen should blank in about 10 seconds.  If it does not,
  160.         you will have to use H- (which is the default [safe] setting).
  161.         Reset BURNOUT to some reasonable period of time, of course,
  162.         after you have tested.
  163.  
  164.         NOTE:  in H- mode, BURNOUT won't fully clear screens with more
  165.         than 25 display lines, and it won't turn off the CGA border.
  166.  
  167.         C: This stands for Continuous Clear.  If you are using H+, you
  168.         can skip this one, because it is ignored in hardware blanking
  169.         mode.  As mentioned above, software blanking is achieved by
  170.         simply changing all video attributes to nondisplay
  171.         (black-on-black).  Now, if you are running in V- mode (not
  172.         monitoring video), or if you are running a program that
  173.         achieves video output by writing data directly to screen memory,
  174.         new data will begin to appear on the screen, even though it is
  175.         blanked.  Continuous Clear attempts to remedy this by simply
  176.         resetting all the attributes to black-on-black every time the
  177.         clock ticks (18 times per second).  The new data will flash on
  178.         the screen and disappear immediately.
  179.  
  180.         F: This stands for Forced clear.  It allows you to alter the
  181.         key combination that will clear the screen instantly.  You will
  182.         need these codes:
  183.  
  184.                 Right shift:  1
  185.                 Left shift:   2
  186.                 Ctrl:         4
  187.                 Alt:          8
  188.  
  189.         Decide what keys you want to use (any combination is OK), and
  190.         add up the codes.  For example, if you want the screen to clear
  191.         when you press both shift keys, add 1 + 2.  Use the sum with the
  192.         F parameter:
  193.  
  194.                 BURNOUT F3
  195.  
  196.         If you wish to disable forced blanking, use zero:
  197.  
  198.                 BURNOUT F0
  199.  
  200.         Note that the maximum valid parameter is 15 (1+2+4+8, meaning
  201.         all four keys must be pressed).  Any parameter above 15 will be
  202.         ignored.
  203.  
  204.         R:  this stands for Reset.  It resets the current tick counter
  205.         to the reset value (i.e., to the COUNT value, default 10800) and
  206.         restores the screen if it is currently blanked.  This is of
  207.         interest primarily to programmers who want to prevent BURNDEV
  208.         from blanking the screen during lengthy computations.
  209.  
  210.                         *       *       *       *
  211.  
  212.         BURNOUT parameters can be entered in any order; illegal
  213.         parameters, capitalization, and separators are IGNORED.  Thus,
  214.         the following are all equivalent:
  215.  
  216.                 BURNOUT 5000 V+ H- F6
  217.                 BURNOUT F6v+h-5000
  218.                 BURNOUT H+, F6, V-, 5000
  219.                 BURNOUT 5000H-F6V+
  220.  
  221.         Obviously, you cannot enter something like:
  222.  
  223.                 BURNOUT F75000
  224.  
  225.         to set the force keys to 7 and the count to 5000.  You'd have to
  226.         use "5000F7" or "5000 F7", etc.  In particular, note that
  227.         "F7 5000" will NOT work.  When we said that separators are
  228.         ignored, we meant ignored.  "F7 5000" and "F75000" are
  229.         identical insofar as BURNOUT is concerned.
  230.  
  231.         If you enter a COUNT greater than 65535, you're on your own.
  232.         You won't get what you expect.
  233.  
  234.         If you don't like the way BURNOUT.COM works, you're free to
  235.         "roll your own"; see the section on writing to BURNDEV.
  236.  
  237.         When BURNOUT is finished, it will display the current device
  238.         status.  For example:
  239.  
  240.                 Status: 09994,10000, ,C-,V+,H+
  241.  
  242.         The format of the status line is:
  243.  
  244.                 Status: nnnnn,nnnnn,B,C+-,V+-,H+-
  245.  
  246.         The first number is the current number of clock ticks remaining
  247.         till the next screen blank; the second is the reset count (in
  248.         this case, the two numbers will be very close).  The "B", if
  249.         present, indicates that the screen is currently Blanked (you
  250.         won't see this after running BURNOUT--it is part of the stantus
  251.         report for the programmers' interface).  The "C", "V", and "H"
  252.         flags indicate the current status of Continuous Clear, Video
  253.         monitoring, and Hardware clearing.  If the parameter is active,
  254.         the indicator will be followed by a plus sign (+), otherwise a
  255.         minus sign (-).  In the above example, then, the current count
  256.         is 09994, the reset count is 10000, the screen is not blanked
  257.         (naturally), Continous Clear is off, and Video monitoring and
  258.         Hardware clearing are on.
  259.  
  260.         If you run BURNOUT without any parameters, it will simply
  261.         display status without changing anything.
  262.  
  263.  
  264.         Setting parameters via CONFIG.SYS
  265.         ---------------------------------
  266.         You can also include any of these parameters in the CONFIG.SYS
  267.         file so that they will be set immediately when you boot.  For
  268.         example,
  269.  
  270.                 device=burndev.sys 8000 H+ V- F5
  271.  
  272.         If you set H+ mode via CONFIG.SYS, BURNOUT will use about 2K
  273.         less memory.  However, you will not be able to switch to H- mode
  274.         after booting (more precisely, BURNOUT will permit you to
  275.         switch to H- mode, but the screen will never blank).
  276.  
  277.  
  278.         Software blanking, hardware blanking, and hardware damage
  279.         ---------------------------------------------------------
  280.         As of this writing (April 14, 1989), the BURNOUT system has
  281.         been available to the public for over five years.  We know that
  282.         it is installed on many thousands of systems, and we have NO
  283.         knowledge that BURNOUT has ever harmed a video adapter.  The
  284.         warning above stems from our knowledge that the hardware
  285.         blanking technique as used by a similar program has, in fact,
  286.         been known to damage some Hercules graphics adapters.
  287.  
  288.         To the best of our knowledge, hardware blanking is entirely safe
  289.         on all video adapters sold by IBM, and on all adapters that are
  290.         fully compatible.  We know for a fact that it is safe on
  291.         IBM-manufactured monochrome, CGA, EGA, and VGA adapters.
  292.  
  293.         Software blanking is safe on all adapters.  It does not
  294.         manipulate the hardware at all; it merely changes all video
  295.         attributes (colors) to black-on-black, causing text to become
  296.         invisible.  However, doing so is a time-consuming process (in
  297.         computer terms), and it can cause problems for some programs.
  298.         In particular, software blanking can create problems for
  299.         communications programs during lengthy file transfers; if the
  300.         screen blanks during a transfer, data will be lost and the
  301.         transfer will probably fail.  Also, software blanking will not
  302.         work on anything other than an 80x25 screen.  So, hardware
  303.         blanking is to be preferred--if it's safe.
  304.  
  305.         The point of all this is, don't be panicked by the warnings
  306.         contained herein.  Some people have told us, "we don't use
  307.         BURNOUT because it is dangerous; instead, we use program X."
  308.         Well, chances are excellent that program X uses exactly the same
  309.         technique--they just don't bother to tell you of the potential
  310.         danger, and they don't provide the alternative (and safe)
  311.         software blanking method.  If you have an IBM adapter, use H+
  312.         with confidence.  If you have a Hercules adapter, use H-.  If
  313.         you have something else, PLEASE don't call us.  We can't
  314.         help--we can't possibly purchase and test all of the adapters on
  315.         the market because we derive no revenues from BURNOUT.  Ask your
  316.         dealer or the manufacturer if the card's video signal can be
  317.         disabled in the same manner as the CGA's video signal, i.e., by
  318.         turning off bit 3 of port 3D8h.
  319.  
  320.  
  321.         Using the BRNDEV device
  322.         -----------------------
  323.         NOTE:  you will only need to read this section if you are a
  324.         programmer and are interested in controlling the BURNOUT system
  325.         from your own programs.
  326.  
  327.         As mentioned above, the screen blanker is implemented as a
  328.         virtual device.  The advantage to this is that it can be
  329.         interrogated or controlled very easily, from the DOS command
  330.         line or from your own programs.  In fact, BURNOUT.COM is a very
  331.         simple program that takes your command line parameters, sends
  332.         them to the BURNOUT device, reads the current status back from
  333.         the device, and displays the results.  This section explains how
  334.         to do this.
  335.  
  336.         When DOS finds the "device=burndev.sys" line in config.sys, it
  337.         loads and installs the burndev.sys program as a virtual device.
  338.         What this means, practically speaking, is that there is now a
  339.         new "device" attached to your PC.  You already have several
  340.         devices installed:  CON, PRN, COM1 and COM2, AUX, your disk
  341.         drives, and possibly a RAM (or virtual) disk if you have
  342.         installed VDISK.SYS or another disk emulator.
  343.  
  344.         The new device is known to DOS by the name "BRNDEV" (note:  this
  345.         is NOT "BURNDEV", it's "BRNDEV", no U).  Like other devices, you
  346.         can write (send information) to the device, and you can read
  347.         (receive information) from the device.  BRNDEV is designed to
  348.         accept certain very specific information (the BURNOUT
  349.         parameters) when it is written to, and to return certain very
  350.         specific information (the BURNOUT status) when it is read from.
  351.  
  352.  
  353.         Writing to BRNDEV
  354.         -----------------
  355.         NOTE:  you will only need to read this section if you are a
  356.         programmer and are interested in controlling the BURNOUT system
  357.         from your own programs.
  358.  
  359.         How do you "write" to BRNDEV?  There are many ways.  The
  360.         simplest is to do it right from the keyboard, at the DOS prompt:
  361.  
  362.                 copy con brndev<Enter>
  363.                 @8000 V-#<Enter>
  364.                 ^Z<Enter>
  365.  
  366.         The "copy con brndev" command instructs DOS that you want to
  367.         copy input from the console device to the BRNDEV device.  The
  368.         console input "@5000 V-#<Enter>" is copied to the BURNOUT device
  369.         when you hit the Ctrl-Z (end of copy) and <Enter> (execute)
  370.         keys.  To prove it worked, type "BURNOUT" and look at the new
  371.         parameters; they should reflect a reset count of 8000 and no
  372.         video monitoring.  (The significance of @ and # will be
  373.         explained shortly.)
  374.  
  375.         Another way to write to the device would be to copy a small
  376.         text file to BRNDEV.  As an example, type
  377.  
  378.                 copy con brndemo.txt<Enter>
  379.                 @10000V+#<Enter>
  380.                 ^Z<Enter>
  381.  
  382.         You should now have a small text file, the contents of which are
  383.         "@10000V+#".  To send it to BRNDEV, just type
  384.  
  385.                 copy brndemo.txt brndev
  386.                         or
  387.                 type brndemo.txt > brndev
  388.  
  389.         Run BURNOUT to prove that the parameters have changed.
  390.  
  391.         The purpose of the "@" at the beginning of the output to BRNDEV
  392.         is to tell the device to flush or rewind its I/O buffers.
  393.         BRNDEV just sees a sequence of characters coming from DOS; it
  394.         has no particular way to know when it is getting a new sequence
  395.         of command characters.  The "@" tells it to get rid of any old,
  396.         leftover junk and to start fresh.  Make a habit of prefixing all
  397.         BRNDEV commands with an @ symbol.
  398.  
  399.         The "#" is the "execute" character.  It tells BRNDEV that it has
  400.         received the whole parameter list.  Only when BRNDEV sees the #
  401.         will it examine the parameter list and execute the commands.
  402.         Thus, "#" should be at the end of all BRNDEV commands; something
  403.         like "@5000 C+H-" will have no effect at all.  "#" also has a
  404.         second purpose, which will be covered below.
  405.  
  406.         It is also possible, of course, to send commands to BRNDEV from
  407.         high level languages or from assembler programs.  Here's a BASIC
  408.         example:
  409.  
  410.                 10 OPEN "\DEV\BRNDEV" FOR OUTPUT AS #1
  411.                 20 PRINT #1, "@5000 C+ H-#";
  412.                 30 CLOSE 1
  413.  
  414.         [\DEV is a dummy directory that DOS creates for devices.  The
  415.         use of \DEV above prevents the program from becoming confused by
  416.         a file called BRNDEV.]
  417.  
  418.         And C (this is C86); you'd want to add some error detection:
  419.  
  420.                 {
  421.                 FILE *burnout, *fopen();
  422.                 static char command[] = "@5000 C+ H-#";
  423.  
  424.                         burnout = fopen("\\dev\\brndev","w");
  425.                         fwrite(command, 1, strlen(command), burnout);
  426.                         fclose(burnout);
  427.                 }
  428.  
  429.         For an 80x8x assembler example, see the source for BURNOUT.COM
  430.         (BURNOUT.ASM), which is included in the BURNOUT archive.
  431.         Basically, you have to open the device (filename=BRNDEV, fomode
  432.         0 or 2), and use function 40H (FWRITE) to write bytes to the
  433.         device using the returned handle.
  434.  
  435.         Remember that you can use the R parameter (write an "@R#" to the
  436.         device) to restore a blanked screen and reset the BURNDEV
  437.         counter without performing any video output.
  438.  
  439.  
  440.         Reading from BRNDEV
  441.         -------------------
  442.         NOTE:  you will only need to read this section if you are a
  443.         programmer and are interested in controlling the BURNOUT system
  444.         from your own programs.
  445.  
  446.         Unfortunately, reading from BRNDEV is not quite as simple as
  447.         writing to it.  There's no way that I can think of to do it from
  448.         the command line; you really need a program (I suppose you could
  449.         CTTY BRNDEV and then reboot when the machine went crazy [just
  450.         kidding, don't try it]).  Also, there is a bug in DOS 2.x that
  451.         prevents you from using BASIC for this purpose (fixed under 3.0,
  452.         however).  Under 3.0, the BASIC program would be:
  453.  
  454.                 10 OPEN "\\DEV\\BRNDEV" FOR OUTPUT AS #1
  455.                 20 PRINT #1, "@#";
  456.                 30 CLOSE 1
  457.                 40 OPEN "\\DEV\\BRNDEV" FOR INPUT AS #1
  458.                 50 BSTAT$ = INPUT$(19,1)
  459.                 60 CLOSE 1
  460.                 70 PRINT "BURNOUT status is "; BSTAT$
  461.  
  462.         Note that we always write an "@#" to the device before reading
  463.         its status.  The @'s function is described as above, to flush
  464.         any unfinished I/O from BRNDEV's buffers.  The # is used for a
  465.         slightly different purpose, however.  It still tells BRNDEV to
  466.         execute any pending commands (but there are none, because the @
  467.         just flushed them).  The second purpose of # is the key one
  468.         here: it tells BRNDEV to prepare for a status request.  When
  469.         BRNDEV sees the #, it examines its current status and puts the
  470.         data into a buffer, from which it will be retrieved when it gets
  471.         the request.  Without the preparatory #, you'll get old data.
  472.  
  473.         The significance of the "19" in the INPUT$ statement is that the
  474.         BRNDEV status report is 19 characters long.
  475.  
  476.         Here's a C example:
  477.  
  478.                 {
  479.                 FILE *burnout, *fopen();
  480.                 static char command[] = "@#";
  481.                 char status[30];
  482.  
  483.                         burnout = fopen("\\dev\\brndev","rw");
  484.                         fwrite(command, 1, strlen(command), burnout);
  485.                         fread (status, 1, 255, burnout);
  486.                         fclose(burnout);
  487.                         printf("BURNOUT status is %s\n", status);
  488.                 }
  489.  
  490.         Note that we requested 255 characters.  DOS, in general, will
  491.         halt a device read when it encounters a carriage return from the
  492.         input stream (unless the device is in "raw" or binary mode).
  493.         BRNDEV makes a habit of sending a CR after the last byte of the
  494.         status report, so this will terminate the read automatically; no
  495.         need to worry about the true length of the report.  BASIC,
  496.         however, will just keep reading until it accumulates the
  497.         requested number of characters, so you do have to be watchful
  498.         there.  The same trick (requesting too many characters) will
  499.         also work in assembler programs (again, see BURNOUT.ASM).
  500.  
  501.         Now, about that bug in DOS 2.x.  It turns out that DOS will mess
  502.         up if you ever request a single byte from an installed character
  503.         device, which is what BRNDEV is.  (Technically: EOF is set on
  504.         the device, and you will not be able to do any further reads
  505.         unless you mess with IOCTL and explicitly reset EOF.)  Thus, the
  506.         following assembler code will NOT work under 2.x:
  507.  
  508.                 mov cx,19         ; Loop for 19 bytes
  509.         Label:
  510.                 push cx           ; Save loop count
  511.                 mov ah,3FH        ; Read from file
  512.                 mov bx,BHandle    ; BRNDEV file handle (from FOPEN)
  513.                 mov cx,1          ; One byte at a time
  514.                 mov dx,offset buf ; Where to put the data
  515.                 int 21H           ; Perform read
  516.                 (do something with the byte)
  517.                 pop cx            ; Recover loop count
  518.                 loop label        ; Loop till 19 bytes read
  519.  
  520.         The first byte will be read OK, but no further input will be
  521.         received.  You MUST read at least 2 bytes at a time.
  522.  
  523.         This bug can be overcome in assembler and C by simply requesting
  524.         the full status report in one read.  However, it appears that
  525.         BASIC requests only one byte at a time, even if you use
  526.         something like INPUT$(19,n).  Reading the second byte then
  527.         results in a READ PAST EOF error.
  528.  
  529.  
  530.         Tricks
  531.         ------
  532.         NOTE:  you will only need to read this section if you are a
  533.         programmer and are interested in controlling the BURNOUT system
  534.         from your own programs.
  535.  
  536.         You can do neat stuff like waiting for the screen to burn out,
  537.         then turning it back on:
  538.  
  539.                 1  REM DEMO PROGRAM TO WAIT UNTIL SCREEN BLANKS
  540.                 2  REM
  541.                 10 OPEN "\DEV\BRNDEV" FOR OUTPUT AS #1
  542.                 20 OPEN "\DEV\BRNDEV" FOR INPUT AS #2
  543.                 30 WHILE NOT BURNED.OUT
  544.                 40    PRINT #1,"@#";
  545.                 50    A$ = INPUT$(19,2)
  546.                 60    BURNED.OUT = (MID$(A$,13,1) = "B")
  547.                 70 WEND
  548.                 80 BEEP: PRINT "Burned out!"
  549.                 90 CLOSE 1: CLOSE 2
  550.  
  551.         The 13th character of the status report, "B", will appear in the
  552.         report only when the screen is blanked.
  553.  
  554.         Also, your programs can cancel BURNOUT totally, if desired:
  555.  
  556.                 1  REM DEMO PROGRAM TO DISABLE BURNOUT
  557.                 2  REM
  558.                 10 OPEN "\DEV\BRNDEV" FOR OUTPUT AS #1
  559.                 20 PRINT #1,"@0#";
  560.                 30 CLOSE 1
  561.  
  562.         (I am not a BASIC programmer, so if any of these demo BASIC
  563.         programs are dumb, someone tell me.)
  564.  
  565.         Naturally, it would be possible (and friendly) to read in the
  566.         BURNOUT parameters, modify them while your program is running,
  567.         and restore the original parameters when you are done.
  568.  
  569.         You can test whether or not BRNDEV is installed in a batch file
  570.         by using the IF EXIST function:
  571.  
  572.                 if exist \dev\brndev (do something)
  573.  
  574.         If you use Seaware's Extended Batch Language, you can use this
  575.         test instead:
  576.  
  577.                 bat stateof \DEV\BRNDEV
  578.                 bat if %r = 0 type BURNOUT IS INSTALLED | goto -A1
  579.                 bat type BURNOUT IS NOT INSTALLED
  580.                 bat -A1
  581.  
  582.         Personal REXX users can try:
  583.  
  584.                 if dosdir('\dev\brndev') \= ''
  585.                     then say 'BURNOUT is installed'
  586.  
  587.  
  588.  
  589.         Incompatibilities and Problems
  590.         ------------------------------
  591.         I am aware of only a few problems and interactions with other
  592.         programs.  In order for BURNOUT to "see" keyboard and video
  593.         activity, active programs must use ROM BIOS (or DOS, which
  594.         itself generally uses BIOS) for their keyboard input and video
  595.         output.  A few progams use neither; hence BURNOUT never sees
  596.         their activity, and the screen will be irrevocably blanked.
  597.         These programs are mostly word processors; two that I know of
  598.         are WordVision and some versions of XyWrite.  Microsoft Windows
  599.         is another example of this.  You must disable BURNOUT before
  600.         using any such system ("BURNOUT 0" will do the trick).  Most
  601.         people do this in a batch or a PCED synonym:
  602.  
  603.                 (batch file)
  604.                 burnout 0
  605.                 wv
  606.                 burnout 10000
  607.  
  608.                 (PCED)
  609.                 ced syn wv 'burnout 0^*wv^burnout 10000'
  610.  
  611.         There are also problems with some communications programs if you
  612.         use software blanking.  If you are performing an extended length
  613.         file transfer the screen may blank during the transfer.
  614.         Software blanking takes a little time, and communications input
  615.         can be lost while it is being accomplished.  This, of course,
  616.         messes up the transfer.  And Continuous Clear is even worse.
  617.         The solution is to either use hardware blanking, or to disable
  618.         BURNOUT while transfers are taking place.  You MAY be able to
  619.         get away with leaving BURNOUT enabled, but disabling Continuous
  620.         Clear (C-).
  621.  
  622.         Note that the word "BRNDEV" becomes a reserved word to DOS.  You
  623.         cannot name any file BRNDEV (or even BRNDEV.TXT, or whatever).
  624.         DOS won't let you do that.  If you do succeed, you won't be able
  625.         to erase it.  This is why the driver is stored in a file named
  626.         BURNDEV.SYS rather than BRNDEV.SYS.
  627.  
  628.  
  629.         Tick chart
  630.         ----------
  631.         To save wear and tear on your calculator, here are some
  632.         approximate tick counts:
  633.  
  634.                 Minutes   Count
  635.                 -------   -----
  636.                    1       1100
  637.                    2       2200
  638.                    3       3275
  639.                    4       4375
  640.                    5       5450
  641.                    6       6550
  642.                    7       7650
  643.                    8       8725
  644.                    9       9825
  645.                   10      10920
  646.                   20      21850
  647.                   30      32760
  648.                   40      43680
  649.                   50      54600
  650.                   60      65520
  651.  
  652.  
  653.         Copyright/License/Warranty
  654.         --------------------------
  655.         This document and the program files BURNOUT.COM, BURNOUT.ASM,
  656.         and BURNDEV.SYS ("the software") are copyrighted by the author.
  657.         The copyright owner hereby licenses you to:  use the software;
  658.         make as many copies of the program and documentation as you
  659.         wish; give such copies to anyone; and distribute the software
  660.         and documentation via electronic means.  There is no charge for
  661.         any of the above.
  662.  
  663.         However, you are specifically prohibited from charging, or
  664.         requesting donations, for any such copies, however made; and
  665.         from distributing the software and/or documentation with
  666.         commercial products without prior permission.  An exception is
  667.         granted to not-for-profit user's groups, which are authorized to
  668.         charge a small fee (not to exceed $7) for materials, handling,
  669.         postage, and general overhead.  NO FOR-PROFIT ORGANIZATION IS
  670.         AUTHORIZED TO CHARGE ANY AMOUNT FOR DISTRIBUTION OF COPIES OF
  671.         THE SOFTWARE OR DOCUMENTATION, OR TO INCLUDE COPIES OF THE
  672.         SOFTWARE OR DOCUMENTATION WITH SALES OF THEIR OWN PRODUCTS.
  673.  
  674.         THIS INCLUDES A SPECIFIC PROHIBITION AGAINST FOR-PROFIT
  675.         ORGANIZATIONS DISTRIBUTING THE SOFTWARE, EITHER ALONE OR WITH
  676.         OTHER SOFTWARE, AND CHARGING A "HANDLING" OR "MATERIALS" FEE OR
  677.         ANY OTHER SUCH FEE FOR THE DISTRIBUTION.  NO FOR-PROFIT
  678.         ORGANIZATION IS AUTHORIZED TO INCLUDE THE SOFTWARE ON ANY MEDIA
  679.         FOR WHICH MONEY IS CHARGED.  PERIOD.
  680.  
  681.         No copy of the software may be distributed or given away without
  682.         this document; and this notice must not be removed.
  683.  
  684.         There is no warranty of any kind, and the copyright owner is not
  685.         liable for damages of any kind.  By using this free software,
  686.         you agree to this and you specifically acknowledge that you are
  687.         aware that BURNDEV and similar programs can, in some modes,
  688.         cause physical damage to some brands of display adapters and/or
  689.         video monitors.
  690.  
  691.         The software and documentation are:
  692.  
  693.                       Copyright (C) 1985,1986,1987,1989 by
  694.  
  695.                             Christopher J. Dunford
  696.                            The Cove Software Group
  697.                                 P.O. Box 1072
  698.                            Columbia, Maryland 21044
  699.  
  700.                                 (301) 992-9371
  701.                         CompuServe 76703,2002 [IBMNET]
  702.